package com.gjy.kafka.resolve.example;

import com.gjy.kafka.resolve.consumer.TransactionalConsumer;

/**
 * 适用于 “消费 A → 处理 → 写入 B” 的场景（比如从输入 Topic 转换后写入输出 Topic），要求 “一次且仅一次”。
 *
 * @author gjy
 * @version 1.0
 * @since 2025-10-13 15:20:20
 */
public class TransactionalDemo {

    public static void main(String[] args) {
        // groupId 与 transactionalId 必须分离，且 transactionId 必须在 broker 中唯一
        String consumerGroup = "order-tx-consumer-group";
        String producerTxnId = "order-tx-producer-01";

        try (TransactionalConsumer consumer = new TransactionalConsumer(consumerGroup, producerTxnId)) {
            consumer.consumeAndForward("orders", "orders_processed");
        }
    }

}
